﻿#define _CRT_SECURE_NO_WARNINGS 1
#pragma warning(disable:6031)
#include<iostream>
#include<string>
using namespace std;

//template<typename T>
//void swap(T& left, T& right)
//{
//	T tmp = left;
//	left = right;
//	right = tmp;
//}
//
//template<typename T>
//T Add(const T& left, const T& right)
//{
//	return left + right;
//}
//
//
//template<typename T>
//class Stack
//{
//public:
//	Stack(size_t capacity = 4)
//	{
//		_array = new T[capacity];
//		_capacity = capacity;
//		_size = 0;
//	}
//	void Push(){}
//	void Pop(){}
//
//private:
//	T* _array;
//	size_t _size;
//	size_t _capacity;
//};
//int main()
//{
//	Stack<int> s1;
//	return 0;
//}

//int main(int argc, char* argv[])
//{
//	string a = "hello world";
//	string b = a;
//
//	if (a.c_str() == b.c_str())
//	{
//		cout << "true" << endl;//
//	}
//	else cout << "false" << endl;
//	string c = b;
//	c = "";
//
//	if (a.c_str() == b.c_str())
//	{
//		cout << "true" << endl;//
//	}
//	else cout << "false" << endl;
//	a = "";
//
//	if (a.c_str() == b.c_str())
//	{
//		cout << "true" << endl;
//	}
//	else cout << "false" << endl;//
//
//	return 0;
//}

//﻿int main()
//{
//	string str("Hello Bit.");
//	str.reserve(111);
//	str.resize(5);
//	str.reserve(50);
//	cout << str.size() << ":" << str.capacity() << endl;
//	return 0;
//
//}

//﻿int main(int argc, char* argv[])
//{
//	string strText = "How are you?";
//	string strSeparator = " ";
//	string strResult;
//	int size_pos = 0;
//	int size_prev_pos = 0;
//	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
//	{
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//		cout << strResult << " ";
//		size_prev_pos = ++size_pos;
//	}
//	if (size_prev_pos != strText.size())
//	{
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//		cout << strResult << " ";
//	}
//	cout << endl;
//	return 0;
//}


void test01()
{
	//atoi 直接返回转换的整形数字

	string s1(" 12a34a   ");
	const char* p1 = s1.c_str();
	int i;
	i = atoi(p1);
	cout << i << endl;
}


	int myAtoi(string str) 
	{
		string tmp = str;
		size_t j;
		j = tmp.find('-');
		size_t i;
		i = tmp.find_first_of("123456789");
		if (j > i)
			j = 1;
		else
			j = -1;
		int k = i;
		while (tmp[k] - '0' <= 9)
		{
			k++;
		}
		int y = k - i;
		string copy;
		copy = tmp.substr(i, y);
		const char* p1 = copy.c_str();
		int x = *p1 - '0';
		return j * x;
	}


void test02()
{
	string s1("42");
	int x = myAtoi(s1);
	cout << x << endl;
}

int main()
{
	test02();
	return 0;
}